package com.mimi.dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.mimi.dataobject.OrderDetail;
import com.mimi.enums.OrderStatusEnum;
import com.mimi.enums.PayStatusEnum;
import com.mimi.util.EnumUtil;
import com.mimi.util.serializer.Date2LongSerializer;
import lombok.Data;

import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Author:徐向
 * @Description:
 * @Date: Created in 12:56 2017/10/9
 */
@Data
//@JsonSerialize(include =JsonSerialize.Inclusion.NON_NULL)
//@JsonInclude(JsonInclude.Include.NON_NULL)
public class OrderDTO{
    /** 订单id */
    private  String orderId;
    /** 买家名字*/
    private String buyerName;
    /** 买家手机 */
    private String buyerPhone;
    /** 买家地址 */
    private String buyerAddress;
    /** 买家微信Openid */
    private String buyerOpenid;
    /** 买家总金额 */
    private BigDecimal orderAmount;
    /** 订单状态,默认为0新下单.*/
    private Integer orderStatus;
    /** 支付状态 默认为0未支付 */
    private Integer payStatus;
    /** 创建时间, */
    @JsonSerialize(using = Date2LongSerializer.class)
    private Date createTime;
    /** 更新时间. */
    @JsonSerialize(using = Date2LongSerializer.class)
    private Date updateTime;

    private List<OrderDetail> orderDetailList = new ArrayList<>();

    //JsonIgnore对象转json回忽略getOrderStatusEnum
    @JsonIgnore
    public OrderStatusEnum getOrderStatusEnum() {
        return EnumUtil.getByCode(orderStatus, OrderStatusEnum.class);
    }
    //JsonIgnore对象转json回忽略getPayStatusEnum
    @JsonIgnore
    public PayStatusEnum getPayStatusEnum() {
        return EnumUtil.getByCode(payStatus, PayStatusEnum.class);
    }
}
